La Web
Las páginas web consisten en objetos, que pueden ser archivos HTML, imágenes, Java applet, archivos de audio, video, etc. Cada página web consiste en un archivo base HTML que incluye referencias a otros objetos, cada uno de ellos direccionable por una URL. Un ejemplo de URL es www.someschool.edu/someDept/pic.gig
, donde www.someschool.edu
indica el nombre del host, y /someDept/pic.gig
indica el path del objeto solicitado.
Se implementa en dos programas, un programa cliente y un programa servidor que se ejecutan en sistemas terminales diferentes, se comunican entre sí intercambiando mensajes HTTP usualmente en el puerto 80. Define cómo los clientes web solicitan páginas web a los servidores web y cómo estos servidores transfieren esas páginas web a los clientes.
Utiliza TCP como protocolo de transporte. No mantiene ninguna información acerca del estado del cliente, por lo tanto, se dice que HTTP es un protocolo sin memoria de estado. Como envía las líneas de cabecera de solicitud y respuesta por la misma conexión TCP que transporta el propio archivo transferido, se dice que HTTP envía su información de control en banda.
Conexiones persistentes: Todas las solicitudes y respuestas en una interacción se envían por la misma conexión TCP.
Conexiones no persistentes: Cada par solicitud/respuesta se envían en conexiones TCP separadas.
Se pueden establecer varias conexiones TCP en paralelo para la misma aplicación.
RTT (Round-Trip Time): “tiempo de ida y vuelta”, es el tiempo que tarda un paquete pequeño en viajar desde el cliente al servidor y volver de nuevo al cliente.
Los problemas del HTTP no persistente son:
2*RTT
por objetoEl header "Connection" con valor "keep-alive" indica que la conexión se debe manetener abierta (de ser posible).
La inmensa mayoría de los mensajes de solicitud HTTP utilizan el método GET. Este método se emplea cuando el navegador solicita un objeto, identificándose dicho objeto en el campo URL.
A menudo, un cliente HTTP utiliza el método POST cuando el usuario completa un formulario; por ejemplo, cuando especifica términos para realizar una búsqueda utilizando un motor de búsqueda. Con un mensaje POST, el usuario solicita también una página web al servidor, pero el contenido concreto de la misma dependerá de lo que el usuario haya escrito en los campos del formulario. Si el valor del campo de método es POST, entonces el cuerpo de la entidad contendrá lo que el usuario haya introducido en los campos del formulario.
No podemos dejar de mencionar que una solicitud generada con un formulario no necesariamente utiliza el método POST. En su lugar, a menudo los formularios HTML emplean el método GET e incluyen los datos de entrada (especificados en los campos del formulario) en el URL solicitado.
El método HEAD es similar al método GET. Cuando un servidor recibe una solicitud con el método HEAD, responde con un mensaje HTTP, pero excluye el objeto solicitado. Los desarrolladores de aplicaciones a menudo utilizan el método HEAD para labores de depuración.
El método PUT suele utilizarse junto con herramientas de publicación web. Esto permite a un usuario cargar un objeto en una ruta específica (directorio) en un servidor web determinado. Las aplicaciones que necesitan cargar objetos en servidores web también emplean el método PUT.
El método DELETE permite a un usuario o a una aplicación borrar un objeto de un servidor web.
Donde el código de estado aparece en la primera línea en los mensajes de respuesta Servidor→Cliente.
Algunos ejemplos de códigos de respuesta HTTP son:
Permiten identificar y almacenar información de los usuarios. La primera vez que un usuario visita un sitio, este puede proporcionar una identificación del mismo, así en las sesiones posteriores el navegador pasa una cabecera de cookie al servidor, identificando al usuario ante el servidor. Las cookies pueden, por tanto, utilizarse para crear una capa de sesión por encima del protocolo HTTP sin memoria del estado de la conexión
Utiliza cuatro componentes:
Un caché web, también denominado servidor proxy, es una entidad de red que satisface
solicitudes HTTP en nombre de un servidor web de origen. La caché web dispone de su
propio almacenamiento en disco y mantiene en él copias de los objetos solicitados
recientemente.
Una caché es a la vez un servidor y un cliente. Habitualmente es un ISP quién adquiere e instala una caché web. Una caché web puede reducir sustancialmente el tiempo de respuesta a la solicitud de un cliente y reducir el tráfico en el enlace de acceso a Internet de una institución. También pueden reducir el tráfico web global en Internet, mejorando en consecuencia el rendimiento de todas las aplicaciones.
El objetivo es no enviar el objeto si la cache tiene una versión “cacheada” actualizada. La cache especifica la fecha de la copia almacenada en una solicitud HTTP: If-Modified-Since: 'date'.
La respuesta del servidor no contiene un objeto si la copia cacheada está actualizada:
HTTP/1.0 304 Not Modified.